/*
 * ArchivoIndice.h
 *
 *  Created on: 31/03/2011
 */


#ifndef ArchivoIndice_H_
#define ArchivoIndice_H_

#include "../indice/RegistroIndice.h"
#include <fstream>
#include "iostream"

using namespace std;

class ArchivoIndice {

private:
		//Archivo donde se van a almacenar los registros rutas
		fstream archivoIndice;
		string nombreDeArchivoIndice;

public:


/****** Crea un archivo de registros indices **************************************************************************************************************/
		ArchivoIndice(string nombreDeArchivoIndice);

/****** Escribe un registro indice, devuelve el Id correspondiente al registro insertado ************************************************************************/
		int escribir(RegistroIndice* unRegistroIndice);

/****** Abre el archivo para lectura ************************************************************************/
		void abrirParaLeer();

/****** Abre el archivo para escritura ************************************************************************/
		void abrirParaEscribir();

/****** Lee el registro correspondiente al Id, si no lo encuentra devuelve un registro vacio *******************************************************************************/
		RegistroIndice* leer(int idRegistroIndice);

/****** Lee el siguiente registro de manera secuencial, si no lo encuentra devuelve un registro vacio *******************************************************************************/
		RegistroIndice* leerSiguiente();

/****** Cierra el archivo *********************************************************************************************************************************************/
		void cerrar();

/****** Destruye el archivo *********************************************************************************************************************************************/
		virtual ~ArchivoIndice();

/****** Sobreescribe el archivo *********************************************************************************************************************************************/
		void sobreescribir();


};

#endif /* ArchivoIndice_H_ */
